package ar.edu.unicen.exa.isistan.archassis.ia.api;

import java.util.List;
import java.util.Map;

import ar.edu.unicen.exa.isistan.archassis.ia.api.db.ItemCase;
import ar.edu.unicen.exa.isistan.archassis.ia.api.db.JavaClass;
import ar.edu.unicen.exa.isistan.archassis.ia.api.db.ListCases;
import ar.edu.unicen.exa.isistan.archassis.ia.impl.AISeedModule;

public class AIModuleFacade implements IAIModule {
	private static AIModuleFacade instance = null;
	
	private IAIModule especificacion;
	
	
	private AIModuleFacade() {
		especificacion = new AISeedModule();
		
	}
	public static AIModuleFacade getInstance() {
		if (instance == null) {
			instance = new AIModuleFacade();
		}
		return instance;
	}
	
	public Map<Long,ListCases> getAllCases() {
		return especificacion.getAllCases();
	}
	
//	public ClassSeed convert(JavaClass j) {
//		return GenerateSeed.convert(j);
//	}
	
//	@Override
//	public void add(String name, List<JavaClass> la) {
//		especificacion.add(name, la);
//	}
	/**
	 * Ver {@link AISeedModule#evaluate(List)}
	 * 
	 */
	@Override
	public EvalResult evaluate(List<JavaClass> la) {
		return especificacion.evaluate(la);
	}
	
	@Override
	public void addItemCase(Long id, ItemCase la) throws Exception {
		especificacion.addItemCase(id, la);
		
	}
	@Override
	public void addListCases(ListCases listCases) {
		especificacion.addListCases(listCases);
	}
	@Override
	public Long getCurrentId() {
		return especificacion.getCurrentId();
	}
	 
	
}
